import "@site/src/languages/highlight";

# Decision

**描述：**

&emsp;&emsp;用于创建游戏AI的决策树框架。

## Sel

**类型：** 函数。

**描述：**

&emsp;&emsp;创建一个选择器节点。
选择器节点将遍历子节点直到任意节点执行成功。

**签名：**
```tl
Sel: function(nodes: {Leaf}): Leaf
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| nodes | \{Leaf} | 子节点的列表。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| Leaf | 新的决策树选择器节点。 |

## Seq

**类型：** 函数。

**描述：**

&emsp;&emsp;创建一个新的序列节点。
序列节点将遍历执行子节点直到所有节点都成功。

**签名：**
```tl
Seq: function(nodes: {Leaf}): Leaf
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| nodes | \{Leaf} | 子节点的列表。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| Leaf | 新的决策树序列节点。 |

## Con

**类型：** 函数。

**描述：**

&emsp;&emsp;创建具有指定名称和检查函数的条件节点。

**签名：**
```tl
Con: function(name: string, handler: function(self: Unit): boolean): Leaf
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| name | string | 条件节点名称。 |
| handler | function | 接收`Unit`并返回`Leaf`节点的处理程序函数。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| Leaf | 新的决策树条件检查节点。 |

## Act

**类型：** 函数。

**描述：**

&emsp;&emsp;创建具有执行特定单位动作的动作节点。

**签名：**
```tl
Act: function(actionName: string): Leaf
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| actionName | string | 要执行的单位动作的名称。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| Leaf | 新的决策树动作节点. |

## Act

**类型：** 函数。

**描述：**

&emsp;&emsp;创建一个动态的动作节点，执行一个函数返回要执行的单位动作名称。

**签名：**
```tl
Act: function(handler: function(self: Unit): string): Leaf
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| handler | function | 接收`Unit`并返回要执行的单位动作名称。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| Leaf | 新的决策树动作节点. |

## Accept

**类型：** 函数。

**描述：**

&emsp;&emsp;创建一个立即返回成功的决策树节点。

**签名：**
```tl
Accept: function(): Leaf
```

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| Leaf | 新的决策树接受节点. |

## Reject

**类型：** 函数。

**描述：**

&emsp;&emsp;创建一个立即返回失败的决策树节点。

**签名：**
```tl
Reject: function(): Leaf
```

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| Leaf | 新的决策树拒绝节点. |

## Behave

**类型：** 函数。

**描述：**

&emsp;&emsp;创建一个决策树节点，会执行一个作为子节点行为树并返回执行结果。
可以将行为树作为一个节点包含在决策树中，使AI能够使用决策和行为执行的组合来实现复杂的结构。

**签名：**
```tl
Behave: function(name: string, root: Behavior.Leaf): Leaf
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| name | string | 子行为树的名称。 |
| root | Behavior.Leaf | 子行为树的根节点。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| Leaf | 新的决策树“行为”节点。 |

## AI

**类型：** 成员变量。

**描述：**

&emsp;&emsp;获得决策树执行相关信息的单例对象。

**签名：**
```tl
AI: AI
```